package FourWeek;

import java.util.Arrays;

public class kuaisupaixu {
    public static void main(String[] args) {
        int[]arr={12,14,5,9,21,13};
        System.out.println("Arrays.toString(arr)="+Arrays.toString(arr));
        startSout(arr,0,arr.length-1);
        System.out.println("Arrays.toString(arr)="+Arrays.toString(arr));
    }
    public static void startSout(int[]arr1,int l,int r){
        if (l<r){
            //1,找基准值
            int base =arr1[l];
            int left =l;
            int right =r;
            while (left<right){
                //从右边往左找，比base大的时right--，比base小的时候替换left的位置
                while (left<right &&arr1[right]>=base){
                    right--;
                }
                arr1[left]=arr1[right];

                //从左边往右找，比base小的时left++，比base大的时候替换right的位置
                while (left<right &&arr1[left]<=base){
                    left++;
                }
                arr1[right]=arr1[left];
            }
            arr1[left]=base;

            startSout(arr1,l,left-1);//使用同样的方法递归左边
            startSout(arr1,right+1,r);//使用同样的方法递归右边
        }
    }
}
